const fs = require('fs')


// 异步方法 先转换成promise
/**** 
function read(...args) {
  return new Promise((resolve, reject) => {
    fs.readFile(...args, (err, data) => {
      if(err) {
        reject(err)
      }else {
        resolve(data)
      }
    })
  })
}


read(`${process.cwd()}/1.Promise/2.promise/name.txt`, 'utf8').then( data => {
  return read(`${process.cwd()}/1.Promise/2.promise/${data}`, 'utf8')
}).then(data => {
  console.log('---data-')
  console.log(data)
}).catch(err=>{
  console.log('----err---')
  console.log(err)
})


// fs.readFile('./name.txt','utf8', (err, data) => {
//   if(err) return

// })
**/

/**2--- */
// const {promisify} = require('util')
// 异步 回调
function promisify(fn) {
  return function(...args) {  //readFile
    return new Promise((resolve, reject) => {
      // fs.readFile
      fn(...args, function(err, data) {
        if(err) reject(err)
        resolve(data) 
      })
    })
  }
}

let readFile = promisify(fs.readFile)
// 直接将异步的node方法转化成promise方法
readFile(`${process.cwd()}/1.Promise/2.promise/name.txt`, 'utf8').then(data => {
  return readFile(`${process.cwd()}/1.Promise/2.promise/${data}`, 'utf8')
}).then(data => {
  console.log('---data---then2')
  console.log(data)
}).catch(err => {
  console.log(err)
})



